Heapsort

Heapsort
Heapsort
 
[dt. »Sortierung von Haufen«], ein 1964 von James W. J. Williams entwickelter Algorithmus, mit dem beliebige Daten in auf- oder absteigender Reihenfolge sortiert werden. Er basiert auf dem 1962 von Robert W. Floyd veröffentlichten Treesort-Verfahren. Für die Heapsort-Sortierung werden die Daten zunächst in einem binären Baum dargestellt, dem »Heap-Baum«. Ein Heap-Baum ist binär und außerdem vollständig, d. h., er enthält mit Ausnahme der untersten Ebene keine Lücke. Zusätzlich soll der Baum noch geordnet sein, was allerdings erst durch die Sortierung gewährleistet wird. Programmintern erfolgt die Speicherung der Daten in Form eines Arrays.
 
Beginnend von unten nach oben und von links nach rechts werden die Daten nun paarweise so vertauscht, dass jedes an einem Knoten liegende Element größer ist als die beiden Elemente in den dort entspringenden Ästen. Sobald das größte Element an der Spitze des Baums steht, wird es aus dem Baum entfernt und durch das am weitesten rechts unten stehenden Element ersetzt. Das aussortierte Element wird in die (sortierte) Ergebnisliste eingetragen.
 
Die für eine Sortierung benötigte Zeit hängt wie n × log (n) von der Anzahl n der zu sortierenden Elemente ab. Damit gehört das Heapsort-Verfahren zu den schnellsten Sortieralgorithmen. Lediglich das Verfahren Quicksort, das spezielle Abbruchkriterien enthält, ist noch geringfügig schneller.
 

Universal-Lexikon. 2012.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Heapsort — Infobox Algorithm class=Sorting algorithm A run of the heapsort algorithm sorting an array of randomly permuted values. In the first stage of the algorithm the array elements are reordered to satisfy the heap property. Before the actual sorting… …   Wikipedia

  • Heapsort — Der Heapsort Algorithmus beim Sortieren eines Arrays aus permutierten Werten. Der Algorithmus besteht aus zwei Schritten; im vorbereitenden Schritt wird das Array zu einem binären Heap umgeordnet, dessen Baumstruktur vor dem eigentlichen… …   Deutsch Wikipedia

  • Heapsort — Animación mostrando el funcionamiento del heapsort. El ordenamiento por montículos (heapsort en inglés) es un algoritmo de ordenamiento no recursivo, no estable, con complejidad computacional Θ(nlog n) Este algoritmo consiste en almacenar… …   Wikipedia Español

  • Heapsort — …   Википедия

  • Heapsort — El ordenamiento por montículos (Heap sort en inglés) es un algoritmo de ordenación no recursivo, no estable, con complejidad computacional O(n log n). Este algoritmo consiste en almacenar todos los elementos del vector a ordenar en un …   Enciclopedia Universal

  • Heapsort — Heap|sort [ hi:psɔ:t] das; s, s <zu gleichbed. engl. heap »Haufen« u. to sort »sortieren; trennen«> schnelles internes Sortierverfahren (EDV) …   Das große Fremdwörterbuch

  • Bottom-Up-Heapsort — BottomUp Heapsort ist ein Sortieralgorithmus, der u. a. 1990 von Ingo Wegener vorgestellt wurde und im Durchschnitt besser als Quicksort arbeitet, falls man Vergleichsoperationen hinreichend stark gewichtet. Es ist eine Variante von Heapsort, die …   Deutsch Wikipedia

  • BottomUp-HeapSort — ist ein Sortieralgorithmus, der u. a. 1990 von Ingo Wegener vorgestellt wurde und im Durchschnitt besser als Quicksort arbeitet, falls man Vergleichsoperationen hinreichend stark gewichtet. Es ist eine Variante von Heapsort, die vor allem zur… …   Deutsch Wikipedia

  • BottomUp-Heapsort — ist ein Sortieralgorithmus, der u. a. 1990 von Ingo Wegener vorgestellt wurde und im Durchschnitt besser als Quicksort arbeitet, falls man Vergleichsoperationen hinreichend stark gewichtet. Es ist eine Variante von Heapsort, die vor allem zur… …   Deutsch Wikipedia

  • Haldensortierung — Der Heapsort Algorithmus beim Sortieren eines Arrays aus permutierten Werten. Der Algorithmus besteht aus zwei Schritten; im vorbereitenden Schritt wird das Array zu einem binären Heap umgeordnet, dessen Baumstruktur vor dem eigentlichen… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”